package pub.tbc.api.invoker;

import pub.tbc.api.config.ProjectConfig;
import pub.tbc.api.invoker.protocol.http.NettyHttpInvoker;

/**
 * 按配置反回相应的初始化组件
 *
 * @author tbc on 2017/3/4.
 */
public class InvokerFactory {
    private static ProjectConfig config = ProjectConfig.instance();

    private static Invoker getInvoker(String type) {
        switch (type) {
            case "http":
                return new NettyHttpInvoker();
            case "rmi":
                return new NettyHttpInvoker();
            case "dubbo":
                return new NettyHttpInvoker();
            default:
                throw new RuntimeException("无法确定的服务调用类型");
        }
    }

    public static Invoker getInvoker() {
        return getInvoker(config.invokerType());
    }


}
